const { app, BrowserWindow, dialog } = require('electron');
const { setupDesktopBackground } = require('./wallpaperHelper');
const { browseFiles } = require('./browserHelper');
const { setMainWindow } = require('./windowManager');
let mainWindow;
///获取node固有的path模块
const path = require('node:path');
// Handle creating/removing shortcuts on Windows when installing/uninstalling.
if (require('electron-squirrel-startup')) {
  app.quit();
}
const createWindow = () => {
  // Create the browser window.
  mainWindow = new BrowserWindow({
    width: 400,
    height: 800,
    x:0,
    y:0,
    autoHideMenuBar: false,
    // titleBarStyle: 'hiddenInset', // 隐藏原生标题栏
    // alwaysOnTop:true,
    webPreferences: {
      ///预加载脚本路径：必须要绝对路径
      preload: path.join(__dirname, '../preload.js'),
      sandbox:false,// 重要！否则 iframe 无法继承 preload.js
    },
  });
  setMainWindow(mainWindow);
  handleActions();
  // and load the index.html of the app.
  // mainWindow.loadFile(path.join(__dirname, '../commont/test.html'));
  // mainWindow.loadFile(path.join(__dirname, '../header/header.html'));
  mainWindow.loadFile(path.join(__dirname, '../index.html'));

  // Open the DevTools.
  mainWindow.webContents.openDevTools();
};

// This method will be called when Electron has finished
// initialization and is ready to create browser windows.
// Some APIs can only be used after this event occurs.
// app.whenReady().then(() => {
//   createWindow();

//   // On OS X it's common to re-create a window in the app when the
//   // dock icon is clicked and there are no other windows open.
//   app.on('activate', () => {
//     if (BrowserWindow.getAllWindows().length === 0) {
//       createWindow();
//     }
//   });
// });

app.on('ready', () => {
  createWindow();
})
app.on('activate', () => {
  if (BrowserWindow.getAllWindows().length === 0) createWindow()
})
// Quit when all windows are closed, except on macOS. There, it's common
// for applications and their menu bar to stay active until the user quits
// explicitly with Cmd + Q.
app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') app.quit()
});


function handleActions() {
  setupDesktopBackground();
  browseFiles();
}

module.exports = () => mainWindow;
